package top.rish.rib.base.ware;

import cn.hutool.core.lang.tree.Tree;
import cn.zhxu.bs.SearchResult;
import org.noear.solon.core.handle.Context;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

public interface BaseService<T extends BaseEntity>   {

    SearchResult<T> page(Context ctx);

    List<T> all(Context ctx);

    <Y> SearchResult<Y> page(Context ctx, Class<Y> clazz);

    String[] pageQuerySummaryFields(Context ctx,Class<?> forClass);

    Map<String,Object> pageQueryMap(Context ctx,Class<?> forClass);



    T add(T entity);

    T updateById(T entity);

    T deleteById(T entity);

    T deleteById(Serializable id);

    T getById(Serializable id);

    T add(Context ctx);

    boolean batchAdd(Context ctx);

    T  mod(Context ctx);

    T  del(Context ctx);

    T  get(Context ctx);

    boolean sort(Context ctx);


    T changeStatus(Context ctx);

}
